# 方法一 模拟
class Solution:
    def triangularSum(self, nums: List[int]) -> int:
        # 按算法流程
        while len(nums) > 1:
            n = len(nums)
            newnums = [0] * (n - 1)
            for i in range(n - 1):
                newnums[i] = (nums[i] + nums[i + 1]) % 10
            nums = newnums.copy()
        
        return nums[0]

# 方法二 组合数学
class Solution:
    def triangularSum(self, nums: List[int]) -> int:
        n = len(nums)
        # 直接调用 math.comb 算出来的组合数很大，更快的写法见【Python3 预处理】
        return sum(comb(n - 1, i) * x for i, x in enumerate(nums)) % 10